home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / Libraries / C Internet Config / Examples ƒ / Example / IC Resource ƒ / Syslog Component ƒ / syslog component.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-15  |  2.0 KB  |  83 lines  |  [TEXT/SPM ]

  1. /*
  2.     syslog component.h
  3.     
  4.     Header file describing the API for the component interface.
  5. */
  6.  
  7. #pragma once
  8.  
  9. #ifndef __H_Syslog_Component__
  10. #define __H_Syslog_Component__
  11.  
  12. #ifndef __COMPONENTS__
  13. #include <Components.h>
  14. #endif
  15.  
  16. #ifndef __PROCESSES__
  17. #include <Processes.h>
  18. #endif
  19.  
  20. // include the syslog stuff
  21. #include "sys/syslog.h"
  22.  
  23. #ifndef kComponentWildCard
  24. #define kComponentWildCard 0L
  25. #endif
  26.  
  27. // Define the type/Manufacturer for the component
  28. #define ksyslogComponentType 'sLog'
  29.  
  30. // Define the version for the component
  31. #define kVersion 0x00010000
  32.  
  33. // Define special selectors exclusive to this component
  34. #define kopenlogSelector            0x10
  35. #define ksyslogSelector            0x11
  36. #define kcloselogSelector            0x12
  37. #define ksetlogmaskSelector        0x13
  38. #define kSetFileSelector            0x14
  39.  
  40. #define kGetErrorSelector        0x00
  41.  
  42. // For each of the selectors, define the interface
  43. #ifdef __cplusplus
  44. extern "C" {
  45. #endif
  46.  
  47. // define component specific routines here
  48.  
  49. pascal ComponentResult Comp_geterror(ComponentInstance inst,OSErr* err) \
  50.     ComponentCallNow(kGetErrorSelector,sizeof(OSErr*));
  51.  
  52. // open the log message here
  53. pascal ComponentResult Comp_openlog(ComponentInstance inst,const char* ident,long logopt,short facility)\
  54.     ComponentCallNow(kopenlogSelector,sizeof(char*)+sizeof(long)+sizeof(short));
  55.  
  56. // log a message (note that the normal routine is implemented in glue)
  57. pascal ComponentResult Comp_syslog(ComponentInstance inst,short priority,const char* message)\
  58.     ComponentCallNow(ksyslogSelector,sizeof(short)+sizeof(char*));
  59.  
  60. // close the opened syslog
  61. pascal ComponentResult Comp_closelog(ComponentInstance inst)\
  62.     ComponentCallNow(kcloselogSelector,0);
  63.  
  64. // set the syslog mask...
  65. pascal ComponentResult Comp_setlogmask(ComponentInstance inst,short maskpri) \
  66.     ComponentCallNow(ksetlogmaskSelector,sizeof(short));
  67.  
  68. pascal ComponentResult Comp_setfile(ComponentInstance inst,FSSpecPtr spec)\
  69.     ComponentCallNow(kSetFileSelector,sizeof(FSSpecPtr));
  70.  
  71. #ifdef __cplusplus
  72. }
  73. #endif
  74.  
  75. #endif /* __H_Syslog_Component__ */
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.